package com.hncc.sms.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 排班规则对象 sms_skd_rule
 * 
 * @author ruoyi
 * @date 2020-08-08
 */
@ApiModel(value = "排班规则实体")
public class SmsSkdRule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty(value = "id",required = false)
    private Long id;

    /** 状态 */
    @ApiModelProperty(value = "状态",required = false)
    @Excel(name = "状态")
    private Integer status;

    /** 创建人 */
    @ApiModelProperty(value = "创建人",required = false)
    @Excel(name = "创建人")
    private Long operatorId;

    /** 创建时间 */
    @ApiModelProperty(value = "创建时间",required = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date operateTime;

    /** 规则名 */
    @ApiModelProperty(value = "规则名",required = false)
    @Excel(name = "规则名")
    private String ruleName;

    /** 描述 */
    @ApiModelProperty(value = "描述",required = false)
    @Excel(name = "描述")
    private String description;

    /** 科室选择 */
    @ApiModelProperty(value = "科室选择",required = false)
    @Excel(name = "科室选择")
    private Long deptId;

    /** 科室实体类 */
    private SysDeptManager sysDeptManager;

    /** 用户实体类 */
    private SysUserManager sysUserManager;

    /** 排版规则对象 */
    private List<SmsSkdRuleItem> smsSkdRuleItems;

    /** 开始日期 */
    private Date startDate;

    /** 结束日期 */
    private Date endDate;

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public List<SmsSkdRuleItem> getSmsSkdRuleItems() {
        return smsSkdRuleItems;
    }

    public void setSmsSkdRuleItems(List<SmsSkdRuleItem> smsSkdRuleItems) {
        this.smsSkdRuleItems = smsSkdRuleItems;
    }

    public SysDeptManager getSysDeptManager() {
        return sysDeptManager;
    }

    public void setSysDeptManager(SysDeptManager sysDeptManager) {
        this.sysDeptManager = sysDeptManager;
    }

    public SysUserManager getSysUserManager() {
        return sysUserManager;
    }

    public void setSysUserManager(SysUserManager sysUserManager) {
        this.sysUserManager = sysUserManager;
    }


    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setOperatorId(Long operatorId) 
    {
        this.operatorId = operatorId;
    }

    public Long getOperatorId() 
    {
        return operatorId;
    }
    public void setOperateTime(Date operateTime) 
    {
        this.operateTime = operateTime;
    }

    public Date getOperateTime() 
    {
        return operateTime;
    }
    public void setRuleName(String ruleName) 
    {
        this.ruleName = ruleName;
    }

    public String getRuleName() 
    {
        return ruleName;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("status", getStatus())
            .append("operatorId", getOperatorId())
            .append("operateTime", getOperateTime())
            .append("ruleName", getRuleName())
            .append("description", getDescription())
            .append("deptId", getDeptId())
            .append("params",getParams())
            .append("startDate",getStartDate())
            .append("endDate",getEndDate())
            .append("list",getSmsSkdRuleItems())
            .toString();
    }
}
